#ifndef _VIR_PHY_H
#define _VIR_PHY_H

#define PHY_GET_LINK_STATE      (1)
#define PHY_GET_FC_TYPE         (2)
#define PHY_GET_DUPLEX          (3)
#define PHY_GET_SPEED           (4)
#define PHY_SET_AUTO_NEGO       (5)
#define PHY_SET_DUPLEX          (6)
#define PHY_SET_SPEED           (7)
#define PHY_SET_LOOPBACK        (8)
#define PHY_SET_SHUTDOWN        (9)
#define PHY_SET_PHOTOELECTRICITY    (10)

#define PHY_GET_10_M_LINK_FD    (11)
#define PHY_GET_100_M_LINK_FD   (12)
#define PHY_GET_1000_M_LINK_FD  (13)
#define PHY_GET_1000_M_LINK_OK  (14)


#define PHY_LINK_DOWN           (0)
#define PHY_LINK_UP             (1)
#define PHY_COPEER_LINK         (0)
#define PHY_FIBER_LINK          (1)
#define PHY_AUTO_NEGO_DIS  (0)
#define PHY_AUTO_NEGO_ENA  (1)
#define PHY_DUPLEX_HALF         (0)
#define PHY_DUPLEX_FULL         (1)
#define PHY_SPEED_10M           (0)
#define PHY_SPEED_100M          (1)
#define PHY_SPEED_1000M         (2)
#define PHY_SET_PHOTO           (0)
#define PHY_SET_ELECTRICITY    (1)
#define PHY_LOOP_ENABLE         (0)
#define PHY_LOOP_DISABLE        (1)
#define PHY_SHUTDOWN_ENABLE     (0)
#define PHY_SHUTDOWN_DISABLE    (1)

#define PHY_10_M_LINK_FD   (1)
#define PHY_10_M_LINK_FH   (0)
#define PHY_100_M_LINK_FD  (1)
#define PHY_100_M_LINK_FH  (0)

#define PHY_1000_M_LINK_FD  (1)
#define PHY_1000_M_LINK_FH  (0)
#define PHY_1000_M_LINK_OK  (1)
#define PHY_1000_M_LINK_ERR (0)




typedef struct drv_vir_phy
{
    UINT32    phyAddr;
    int       vecNum;
    FUNCPTR   intConnect;
    FUNCPTR   intDisConnect;
    FUNCPTR   intEnable;
    FUNCPTR   intDisable;
    FUNCPTR   preInit;
    FUNCPTR   init;    
    FUNCPTR   unInit;
    FUNCPTR   read;
    FUNCPTR   write;
    FUNCPTR   ioctl;
    FUNCPTR   drvIntCallBack;
    void    * pDrvCtrl;
}DRV_VIR_PHY;

#endif /* _VIR_PHY_H */ 